package model

//是实体模型定义，一般是一个实体一个文件
type BasePeople struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

//nacos的配置信息
type NacosData struct {
	AlertCenterAddress string   `json:"alertCenterAddress"`
	Kafka1             []string `json:"kafka1"`
	Kafka2             []string `json:"kafka2"`
	NSQ                []string `json:"nsq"`
	AlertCfgurls       []string `json:"alertCfgurls"`
}

type AlertEvent struct {
	SystemAlias string `json:"systemAlias"`
	// sit uat prd
	Env string `json:"env"`
	//应用现象告警
	//健康检查告警 -- url监测 进程存活 端口存活 Ping
	//业务指标告警
	//基础资源告警
	//运维操作审计
	EventDatasource     string `json:"eventDatasource"`
	EventDatasourceName string `json:"eventDatasourceName"`
	//毫秒

	EventOccurTimestamp int64  `json:"eventOccurTimestamp"`
	EventOccurIp        string `json:"eventOccurIp"`
	AlertContent        string `json:"alertContent"`
	AlertPhrase         string `json:"alertPhrase"`
	Status              int    `json:"status"`
	//告警分层：
	//同层合并：
	//告警收敛：底层损坏屏蔽上层告警 上层大量异常屏蔽下层告警
	//告警升级（1 告警人工处理子系统 2 同时出现的大量报错发送运维）

	//1 应用层 异常 健康检查 rpc调用（dal soa cache ）
	//2 开源软件层（haproxy,nginx,tomcat,keepalived,lvs,etc..)
	//3 操作系统层（cpu,memory,disk,etc..）
	//4 网络层（一般交换机、核心交换机、交换机拓扑）
	EventLayer        string `json:"eventLayer"`
	EventCategory     string `json:"eventCategory"`
	EventId           string `json:"eventId"`
	TargetSystemAlias string `json:"targetSystemAlias"`
	TargetIP          string `json:"targetIP"`
}

type Applog struct {
	SystemAlias string
	InstanceId  string `json:"Ip"`
	Topic       string `json:"ClassName"`
	Title       string `json:"MethodName"`
	MetricValue float64
	Timestamp   int64 //纳秒

	Content   string
	Level     int
	LogType   string
	SpanDepth int
	Tag       string

	SpanId       string
	ParentSpanId string
	TraceId      string
	RequestId    string

	EventId           string
	RemoteSystemAlias string
	RemoteIpAddress   string
}
